﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Streambolics.PtBurn
{
    /// <summary>
    ///     The status of a job
    /// </summary>
    /// <remarks><para>
    ///     The order is important. All statuses before InQueue are in
    ///     fact not yet known by the server.
    /// </para></remarks>

    public enum PtBurnJobStatus
    {
        /// <summary>
        ///     The job is not in the queue. 
        /// </summary>
        /// <remarks><para>
        ///     This may mean the job has not yet been inserted, or it has 
        ///     already disappeared from the queue.
        /// </para></remarks>

        NotInQueue,

        /// <summary>
        ///     The job is being actively built.
        /// </summary>
        /// <remarks><para>
        ///     This status can only be reported when the job is being built by the
        ///     current application.
        /// </para></remarks>

        Building,
        
        /// <summary>
        ///     The files are being copied in the queue.
        /// </summary>

        Submitting,

        SubmitError,

        Submitted,

        /// <summary>
        ///     The job is in the queue, but has not yet been activated by the
        ///     server.
        /// </summary>

        InQueue,
        
        /// <summary>
        ///     The job is being actively processed by the PtBurn server.
        /// </summary>
        /// <remarks><para>
        ///     This state may be refined as Burning or Printing
        /// </para></remarks>
        
        Active,
        
        Burning,
        
        Printing,

        /// <summary>
        ///     The job is complete, and had no error.
        /// </summary>

        Complete,

        Error
    }
}
